// 引入外部资源
import { request } from "../../request/index";
import regeneratorRuntime from "../../libs/runtime";

Page({
  data: {
    // 商品对象
    goodsObj: {},
  },

  onLoad: function (options) {
    // 获取商品 ID
    const { goods_id } = options;
    this.getGoodsDetail(goods_id);
  },

  // 获取商品详情数据
  async getGoodsDetail(goods_id) {
    const res = await request({ url: "/goods/detail", data: { goods_id } });
    // TODO 异步测试 console.log(res.data.message);
    this.setData({
      goodsObj: res.data.message,
    });
  },

  // 放大预览轮播图(利用小程序的 previewImage API)
  handlePreviewImage(e) {
    // 要预览的图片数组
    const urls = this.data.goodsObj.pics.map((v) => v.pics_mid);
    // 当前要预览的图片
    const currentImg = e.currentTarget.dataset.url;
    wx.previewImage({
      current: currentImg,
      urls,
    });
  },

  // 添加购物车功能(因为后端接口原因，此处使用微信缓存存储)
  handleCartAdd() {
    // 首次获取时有可能为空
    let cart = wx.getStorageSync("cart") || [];
    // 判断商品对象是否已存在于购物车数组中
    let index = cart.findIndex(
      (v) => v.goods_id === this.data.goodsObj.goods_id
    );
    if (index === -1) {
      // 商品对象不存在
      this.data.goodsObj.num = 1;
      this.data.goodsObj.isChecked = true;
      cart.push(this.data.goodsObj);
    } else {
      // 商品数据存在，数量自增
      cart[index].num++;
    }
    // 重新添加购物车缓存
    wx.setStorageSync("cart", cart);
    // 弹窗提示
    wx.showToast({
      title: "添加成功",
      icon: "success",
      mask: true,
    });
  },
});
